package cn.stu.framework.service;

import cn.stu.common.utils.ApiData;
import cn.stu.common.utils.R;
import cn.stu.framework.dto.UserDisableDto;
import cn.stu.framework.dto.UsersDetailDto;
import cn.stu.framework.entity.UsersDetail;
import cn.stu.framework.vo.UsersDetailVo;
import cn.stu.framework.vo.UsersVo;
import com.baomidou.mybatisplus.extension.service.IService;
import org.springframework.web.multipart.MultipartFile;

import java.util.List;

/**
 * 服务类
 *
 * @author ${author}
 * @since 2022-08-04
 */

public interface UsersDetailService extends IService<UsersDetail> {
    /**
     * 用户信息
     *
     * @param userId 用户id
     * @return {@link ApiData}
     */
    R<UsersVo> userInfo(Long userId);

    /**
     * 用户添加
     *
     * @param urs 用户需求说明书
     * @return {@link ApiData}
     */
    ApiData userAdd(UsersDetailVo urs);

    /**
     * 用户▽
     *
     * @param userId 用户id
     * @param pwd    松材线虫病
     * @return {@link ApiData}
     */
    ApiData userDel(Long userId, String pwd);

    /**
     * 用户重置
     *
     * @param userId 用户id
     * @return {@link ApiData}
     */
    ApiData userReset(Long userId);

    /**
     * 用户更新
     *
     * @param urs 用户需求说明书
     * @return {@link ApiData}
     */
    ApiData userUpdate(UsersDetailVo urs);

    /**
     * 选择联系人
     *
     * @param usersDetailDto 用户详细dto
     * @return {@link ApiData}
     */
    ApiData selectContacts(UsersDetailDto usersDetailDto);

    /**
     * 文件上传
     *
     * @param newImg 新img
     * @return {@link ApiData}
     */
    ApiData fileUpload(MultipartFile newImg);

    /**
     * 用户禁用
     *
     * @param userDisableDto 用户禁用dto
     * @return {@link ApiData}
     */
    ApiData userDisabled(UserDisableDto userDisableDto);

    /**
     * 选择用户列表
     *
     * @param usersDetail 用户详细信息
     * @return {@link UsersDetail}
     */
    R<List<UsersDetailVo>> selectUserList(UsersDetail usersDetail);
}
